home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / Threads.idl < prev    next >
Text File  |  1996-05-01  |  3KB  |  104 lines

  1. /*
  2.      File:        Threads.idl
  3.  
  4.      Contains:    Thread Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __THREADS_IDL__
  19. #define __THREADS_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __ERRORS_IDL__
  25. #include <Errors.idl>
  26. #endif
  27. #ifndef __MEMORY_IDL__
  28. #include <Memory.idl>
  29. #endif
  30.  
  31. #ifdef __SOMIDL__
  32.  
  33. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  34. /* Thread states */
  35. typedef unsigned short            ThreadState;
  36.  
  37. /* Error codes have been meoved to Errors.(pah) */
  38. /* Thread environment characteristics */
  39. typedef OpaquePtr                ThreadTaskRef;                /* Substituted OpaquePtr for ``void*'' */
  40.  
  41. /* Thread characteristics */
  42. typedef unsigned long            ThreadStyle;
  43.  
  44. /* Thread identifiers */
  45. typedef unsigned long            ThreadID;
  46.  
  47. /* Options when creating a thread */
  48. typedef unsigned long            ThreadOptions;
  49.  
  50. /* Information supplied to the custom scheduler */
  51. typedef SOMLargeStruct            SchedulerInfoRec;            /* Derived from a struct of 16 bytes in size */
  52.  
  53. typedef OpaquePtr                SchedulerInfoRecPtr;        /* Substituted OpaquePtr for ``SchedulerInfoRec*'' */
  54.  
  55. #if GENERATING68K && GENERATINGCFM
  56. /*
  57.     The following UniversalProcPtrs are for CFM-68k compatiblity with
  58.     the implementation of the Thread Manager.
  59. */
  60. typedef UniversalProcPtr        ThreadEntryProcPtr;
  61.  
  62. typedef UniversalProcPtr        ThreadSchedulerProcPtr;
  63.  
  64. typedef UniversalProcPtr        ThreadSwitchProcPtr;
  65.  
  66. typedef UniversalProcPtr        ThreadTerminationProcPtr;
  67.  
  68. typedef UniversalProcPtr        DebuggerNewThreadProcPtr;
  69.  
  70. typedef UniversalProcPtr        DebuggerDisposeThreadProcPtr;
  71.  
  72. typedef UniversalProcPtr        DebuggerThreadSchedulerProcPtr;
  73.  
  74. #else
  75. /*
  76.     The following ProcPtrs cannot be interchanged with UniversalProcPtrs because
  77.     of differences between 680x0 and PowerPC runtime architectures with regard to
  78.     the implementation of the Thread Manager.
  79. */
  80. /* Prototype for thread's entry (main) routine */
  81. typedef OpaquePtr                voidPtr;                    /* Substituted OpaquePtr for ``void*'' */
  82.  
  83. typedef OpaquePtr ThreadEntryProcPtr;
  84. /* Prototype for custom thread scheduler routine */
  85. typedef OpaquePtr ThreadSchedulerProcPtr;
  86. /* Prototype for custom thread switcher routine */
  87. typedef OpaquePtr ThreadSwitchProcPtr;
  88. /* Prototype for thread termination notification routine */
  89. typedef OpaquePtr ThreadTerminationProcPtr;
  90. /* Prototype for debugger NewThread notification */
  91. typedef OpaquePtr DebuggerNewThreadProcPtr;
  92. /* Prototype for debugger DisposeThread notification */
  93. typedef OpaquePtr DebuggerDisposeThreadProcPtr;
  94. /* Prototype for debugger schedule notification */
  95. typedef OpaquePtr DebuggerThreadSchedulerProcPtr;
  96. #endif
  97. /* Thread Manager routines */
  98. #endif
  99.  
  100. #endif /* __SOMIDL__ */
  101.  
  102. #endif /* __THREADS_IDL__ */
  103.  
  104.